package Day_0130;

/**
 * @author zxc
 * @date 2023/01/30 22:03
 **/
public class TransientDemo {
    public static void main(String[] args) {
        /**
         * 问题 ：Java序列化过程中某些字段不需要去序列化，该如何操作？
         * 解决 ：
         * ===》 即，使用transient关键字去修饰某些不需要进行序列化的字段;
         *
         * transient 关键字的作用是：
         * （1）阻止实例中那些用此关键字修饰的的变量序列化；
         * （2）当对象被反序列化时，被 transient 修饰的变量值不会被持久化和恢复。
         * （3）transient 只能修饰变量，不能修饰类和方法。
         *
         * ===》 总结 ：通俗易懂来说，被transient关键字所修饰的变量不参与序列化和反序列化;
         */

        /**
         * 序列化和反序列化定义
         * 1.序列化 (Serialization):
         *  即，将对象的状态信息转换为可以存储或传输形式的过程。
         * （1）在序列化期间，对象将其当前状态写入到临时或持久性存储区。
         * （2）以后，可以通过从存储区中读取或反序列化对象的状态，重新创建该对象。
         *
         * 2.反序列化:
         *  即，反序列化从序列化的表示形式中提取数据，并直接设置对象状态，这也与可访问性规则无关。
         *
         * 3.总结：
         * 其实通俗一点的解释，
         * （1）序列化就是把一个对象保存到一个文件或数据库字段中去;
         * （2）反序列化就是在适当的时候把这个文件再转化成原来的对象使用。
         */
    }
}
